package cn.basic.social.demo.service;

import javax.servlet.http.HttpServletRequest;

/**
 * @ClassName SocialCallbackService
 * @Description 第三方服务回调接口
 * @Author zlf
 * @Date 2023/9/8 10:54
 */
public interface SocialCallbackService {

    /**
     * 企业微信验证指令回调URL
     *
     * @param
     * @return 解密出echostr原文
     * @author zlf
     * @date 10:58 2023/9/8
     */
    Object verificationUrl(HttpServletRequest request);

    /**
     * 企业微信指令回调参数解析
     *
     * @param body            消息体
     * @param applicationName 企业微信应用名称，与yaml文件配置要一致
     * @return
     * @author zlf
     * @date 11:02 2023/9/8
     */
    void getCallBackParameter(HttpServletRequest request, String body, String applicationName);

    /**
     * 企业微信验证数据回调URL
     *
     * @param sVerifyMsgSig    消息体签名
     * @param sVerifyTimeStamp 时间戳
     * @param sVerifyNonce     随机数字串
     * @param sVerifyEchoStr   随机加密字符串
     * @return 解密出echostr原文
     * @author zlf
     * @date 14:04 2023/9/8
     */
    Long verificationUrl(String sVerifyMsgSig, Integer sVerifyTimeStamp, String sVerifyNonce, String sVerifyEchoStr);

    /**
     * 企业微信数据回调参数解析
     *
     * @param sVerifyMsgSig    消息体签名
     * @param sVerifyTimeStamp 时间戳
     * @param sVerifyNonce     随机数字串
     * @param body             随机加密字符串
     * @param applicationName 企业微信应用名称，与yaml文件配置要一致
     * @return 解密出echostr原文
     * @author zlf
     * @date 14:06 2023/9/8
     */
    void getCallBackParameter(String sVerifyMsgSig, Integer sVerifyTimeStamp, String sVerifyNonce, String body, String applicationName);

}
